This invention relates to a framework for developing location-aware computer programs.
The decreasing cost and size of mobile computing and communications devices, and their increasing capabilities, contributes to the explosive growth in new mobile systems and applications. Laptop and handheld computers, as well as Personal Digital Assistants (PDA""s) commonly use wireless communications to connect to a network of available services. At the same time, mobile and cellular telephones increasingly incorporate computing capabilities with Internet access. In the near future, most appliances will also incorporate communications interfaces for remote management. These advances, together with other technologies like xe2x80x9cactive badgesxe2x80x9d and inexpensive position sensing devices, will continue to increase the popularity of location-aware applications.
Many location-aware computer and communications already in use employ locationla dependent data so that the geographic location of both service providers, their clients, and other entities can be taken into account for a variety of purposes. These applications include navigation, fleet management, resource location and mapping services, many of which are provided over the Internet. As Global Positioning System (GPS) devices and other positioning technologies become more accurate and less expensive, the number and variety of location-aware applications will continue to grow dramatically.
Unfortunately, developers of these diverse applications have been and will continue to be required to independently code and integrate location aware functions into these new applications. These duplicative efforts yield unnecessarily expensive mechanisms which are often incompatible with one another.
It is accordingly an object of the present invention to provide an infrastructure which may be used by disparate applications to support location-aware functions and data storage for both fixed and mobile entities.
It is a further object of the invention to provide location-dependent functions for fixed and mobile entities that employ different positioning systems, different input/output devices, and different networking technologies, while allowing these entities to more easily work together.
It is a still further object of the invention to store location and context information which describes location-aware entities in a secure, relational database system which allows authorized users access to appropriate information.
It is a further object of the invention to provide an application infrastructure for specifying and modifying location-aware data objects stored in a relational database, for tracking the location of mobile objects, for responding to queries about the objects and the related data which defines those objects, for specifying events and for handling notifications concerning events, and for providing data caching and replication services which more rapidly process frequently used location information.
The present invention takes the form of a shareable infrastructure which is used in combination with a relational database to provide data storage and processing functions for location-aware objects, including particularly mobile objects whose current position is periodically updated by a position determining system.
In accordance with the invention, the infrastructure employs a database schema which employs client and service tables to store the current point location, and other data, representing virtual objects, including mobile objects. The infrastructure further includes a region table which contains data describing the geometry and characteristics of geographical regions having defined boundaries within which the client and service objects reside. For example, postal code boundaries may be one of the types of regions stored in the system. The clients store data indicating their interest in a set of services and that data is recorded in a client profile database table. The services available on the system which are position-dependent have a geographical location associated with them. The location information of services is also stored in the database repository. The location of the client is determined using positioning services and stored in a database. The last known location of the client as well as a past history of locations for each client is stored. To enhance performance, an additional table may be stored that maps the client""s current location to one of the geographical regions (e.g. location of client within a postal code).
The infrastructure further exposes location-dependent services, including event services and location-based queries, to application programs via an infrastructure API which extends the capabilities of the RDBMS and enables developers to easily incorporate location-aware data storage and functionality into their programs to support mobile objects without special programming.